
<template>
  <main-container headerText="管理员设置 >> 管理员列表">
    <div class="content" :key="showPageKey" >
    <top-option>
    <div slot="left-box">
      
    <input-search
      lableName="账户名"
      inputValue="loginName"
      :tThis="this"
      inputPlaceholder="请输入账户名"
    />
  
    </div>
    <div slot="right-box">
      <div class="sub">
        <el-button @click="handleSearch" class="orange">查询</el-button>
  <el-button @click="handleAdd" >新增</el-button>
  
      </div>
    </div>
  </top-option>
  
  <!-- 列表栏 -->
  <div class="list">
    <el-table
      ref="multipleTable"
      :data="tableData"
      tooltip-effect="dark"
      style="width: 100%; border-radius: 4px;"
      class="tableBox"
      border
    >
      <el-table-column label="序号" width="undefined">
          <template slot-scope="scope">
            {{ scope.row.index || '-'}}
          </template>
        </el-table-column>
        <el-table-column label="账号" width="undefined">
          <template slot-scope="scope">
            {{ scope.row.accountNo || '-'}}
          </template>
        </el-table-column>
        <el-table-column label="账户名" width="undefined">
          <template slot-scope="scope">
            {{ scope.row.loginName || '-'}}
          </template>
        </el-table-column>
        
        <el-table-column label="身份" width="undefined" >
          <template slot-scope="scope">{{roleShow[scope.row.roleId + ''] || '-'}}</template>
        </el-table-column>
        
      
      <el-table-column label="操作" width="180">
        <template slot-scope="scope">
          
      <el-button @click="handleModify" type="primary" :data-id="scope.row.id" size="small">编辑</el-button>
      <el-button @click="handleDelete" type="warning" :data-id="scope.row.id" size="small">删除</el-button> 
        </template>
      </el-table-column>
    
    </el-table>
  </div>

    <!-- 分页 -->
    <div class="paging">
      <div class="block">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="currentPageIdx"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="onePageSize"
          layout="total, prev, pager, next, jumper"
          :total="pageCount"
        ></el-pagination>
      </div>

      <div class="confirm-btn">
        <el-button class="paging-btn" @click="handleEnter" size="small">确定</el-button>
      </div>
  </div>

    
   </div>
  </main-container>
</template>

  <script>
import jhTools from "@/utils/jhTools"; //工具函数
import API from "@/utils/api_config.js"; //引入api

import main_container from '@/components/main_container';
import top_option from "@/components/subCon/topOption";
import input_search from "@/components/subCon/inputSearch";
import select_search from "@/components/subCon/selectSearch";
import date_search from "@/components/subCon/dateSearch";

export default {
  components: {
    "main-container": main_container,
    "top-option": top_option,
    "input-search": input_search,
    "select-search": select_search,
    "date-search": date_search,
  },
  props: {},
  data() {
    return {
      //列表
      tableData: [],
      multipleSelection: [],
      showPageKey: 100,
      //分页
      currentPageIdx: 1, //当前页与跳转框的初始值
      pageCount: 1, //总条数
      onePageSize: 10, //每页的条数
      
      
    formData: {
  
            loginName: null, 
    },
  
          roleOpts: [],
          roleShow: {},
        roleShow : {}, 
      
   
  
      allMethods: "",
    };
  },
  mounted() {
    this.allMethods = this.getAllMethods();
    //页面数据重置 1
    if (this.recoverSearchF) {
      this.recoverSearchF({ _this: this });
    }
    
    
    this.initRequest();
    
            this.getRoleData(); //管理员角色获取
          
    
    this.getInitData();
  
    
  },
  methods: {
    
            //管理员角色获取
            getRoleData () {
              this.allMethods.getRoleData();
            },
            
    //编辑
    handleModify (e) {
      this.allMethods.handleModify(e);
    },
  
    //删除
    handleDelete (e) {
      this.allMethods.handleDelete(e);
    },
  
    //查询
    handleSearch() {
      this.allMethods.handleSearch();
    },
  //新增
  handleAdd(e) {
    this.allMethods.handleAdd(e);
  },
  
    
   

    /* 方法抽离集合 */
    getAllMethods() {
      var _this = this;
      return {
        
            //管理员角色获取
            getRoleData () {
              var url = API.admin_manager.role_page;
              var data ={
            "pageIndex": 1,
            "pageSize": 100,
          };
              console.log("参数", data);
              jhTools.post(
                url,
                data,
                null,
                (res) => {
                  console.log("结果", res);
                  if (res.code == 200) {
                    var opts = [];
                    res.data.records.forEach((item, index) => {
                      opts.push({
                        label: item.roleName,
                        value: item.id
                      })
                    });
                    _this.roleOpts = opts;
                    
                //用列表展示的字段
                var shows = {};
                res.data.records.forEach((item, index)=> {
                  shows[item.id + ''] = item['roleName'];
                })
                _this.roleShow = shows;
                console.log(_this.roleShow)
              
                  } else {
                    _this.$message({
                      type: "warning",
                      message: res.message,
                    });
                  }
                },
                (err) => {
                  console.log(err);
                }
              );
            },
            
    //编辑
    handleModify (e) {
      var { id } = e.currentTarget.dataset;
      _this.$router.push({
        path: '/admin_manager_add_page',
        query: { id }
      });
    },
  
  //删除
  handleDelete(e) {
    const { id } = e.currentTarget.dataset;
    var url = API.admin_manager.del;
    var data = { id };
    console.log("参数", data);
    _this.$confirm("是否确认删除？", "提示", {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    })
      .then(() => {
          
          jhTools.post(
            url,
            data,
            null,
          
            (res) => {
              console.log("结果", res);
              if (res.code == 200) {
                _this.$message({
                  type: "success",
                  message: "操作成功",
                });
                _this.getInitData();
              } else {
                _this.$message({
                  type: "warning",
                  message: res.message,
                });
              }
            },
            (err) => {
              console.log(err);
            }
          );

      })
      .catch(() => {
        this.$message({
          type: "info",
          message: "已取消",
        });
      });

  },
  
    //查询
    handleSearch() {
      var {
       
      loginName,
      } = _this.formData;
      //保存搜索条件
      _this.currentPageIdx = 1;
      //保存数据 2
      if (_this.saveSearchF) {
        _this.saveSearchF({ _this: _this });
      }
      _this.LingChuang_request.handleSearch({
       
      loginName,
        pageIndex: _this.currentPageIdx,
        pageSize: _this.onePageSize,
        
      });
    },
  //新增
    handleAdd (e) {
      _this.$router.push({
        path: '/admin_manager_add_page',
        query: {},
      })
  },
  
    
   
      };
    },
    
    //表格默认函数
    //初始化
    initRequest() {
      this.LingChuang_request = jhTools.LingChuang_request({
        this: this,
        pageUrl: API.admin_manager.page,
        searchUrl: API.admin_manager.page,
        searchData: {},
      });
      // console.log(this.LingChuang_request);
    },
    //加载数据
    getInitData: function () {
      var _this = this;
      this.LingChuang_request.getInitData(
        {
          pageIndex: this.currentPageIdx,
          pageSize: this.onePageSize,
          
        },
        function (res) {
          //初始格式化数据
        }
      );
    },
    //格式化数据
    formatData() {
      this.LingChuang_request.formatData();
    },
    //格式化页面
    formatPaging(res) {
      this.LingChuang_request.formatPaging(res);
    },
    //页数跳转
    handleSizeChange(val) {
      this.LingChuang_request.handleSizeChange(val);
      //分页数据 3
      if (this.saveSearchF) {
        this.saveSearchF({ _this: this });
      }
    },
    //页面点击跳转
    handleCurrentChange(val) {
      this.LingChuang_request.handleCurrentChange(val);
      //分页数据 4
      if (this.saveSearchF) {
        this.saveSearchF({ _this: this });
      }
    },
    //enter跳转
    handleEnter() {
      this.LingChuang_request.getPagingData(
        this.currentPageIdx,
        this.onePageSize
      );
      //分页数据 5
      if (this.saveSearchF) {
        this.saveSearchF({ _this: this });
      }
    },
    //分页数据
    getPagingData(pageIndex, pageSize) {
      this.LingChuang_request.handleEnter(pageIndex, pageSize);
    },
    //列表勾选1
    toggleSelection(rows) {
      this.LingChuang_request.toggleSelection(rows);
    },
    //列表勾选2
    handleSelectionChange(val) {
      this.LingChuang_request.handleSelectionChange(val);
    },
    //表格默认函数

    /* 图片预览 */
    previewImgF({ imgUrl }) {
      this.tools.touchGEvent({
        eName: "previewImg",
        imgUrl,
      });
    },

    /* 恢复搜索状态 6 */
    recoverSearchF({ _this }) {
      _this.tools.recoverSearchF({
        _this: this,
        subItemName: "/admin_manager_admin_table",
      });
    },

    /* 保存搜索状态 7 */
    saveSearchF({ _this }) {
      _this.tools.saveSearchF({
        _this: this,
        subItemName: "/admin_manager_admin_table",
      });
    },

  
  },
};
</script>

<style lang="scss" scoped>
// @import '~styles/mixins.scss';
// @import '~styles/variables.scss';



//隐藏样式类
.hidden {
  display: none !important;
}

.flex {
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>
